【perl】【buu】[WMCTF2020]easy_re
【perl】【buu】[WMCTF2020]easy_re
也是学到新的东西了
这题经过perl加密过的
查克无壳64位 ida
找了半天没找到一点有用的东西,倒是有几个奇怪字符
后来看了一下其他人的wp发现在字符串不断出现的perl是个提示
perl
【看雪perl例题】https://bbs.kanxue.com/thread-67651.htm
00405276 |. 83C4 0C    |add   esp, 0C
00405279 |. 8945 F0    |mov   dword ptr [ebp-10], eax
0040527C |. 85C0      |test  eax, eax
0040527E |. 0F84 83000000 |je    00405307
00405284 |. 68 5CCF4000  |push  0040CF5C               						 ; ASCII “script”
00405289 |. 50        |push  eax
0040528A |. 8B03      |mov   eax, dword ptr [ebx]
0040528C |. FF30      |push  dword ptr [eax]
0040528E |. E8 CBEFFFFF  |call  0040425E
00405293 |. 83C4 0C    |add   esp, 0C
00405296 |. 8943 24    |mov   dword ptr [ebx+24], eax
00405299 |. 85C0      |test  eax, eax
0040529B |. 0F84 32020000 |je    004054D3
004052A1 |. 68 50CF4000  |push  0040CF50               					    ; /s = “hashline”
004052A6 |. FF75 F0    |push  dword ptr [ebp-10]         					 ; |/s
004052A9 |. E8 38360000  |call  <jmp.&MSVCRT.strlen>        		  ; |\strlen
004052AE |. 8BD8      |mov   ebx, eax               								    ; |
004052B0 |. C70424 40CF40>|mov   dword ptr [esp], 0040CF40    ; |ASCII “-e#line 1 “”%s”””
004052B7 |. E8 2A360000  |call  <jmp.&MSVCRT.strlen>       	  	 ; \strlen
004052BC |. 59        |pop   ecx
004052BD |. 03D8      |add   ebx, eax
004052BF |. 53        |push  ebx
004052C0 |. E8 46EEFFFF  |call  0040410B
这个地方0040528E call 0040425E 就是解压的过程,直接f8过了以后eax里面就是你的源代码了。
perl是解释语言,perlapp只是把你的perl程序压缩后放在资源里面,执行的时候会解压的。
解题
在ida里动调找太坐牢了所以选择行x64dbg
F8单步一直到进入主函数
进入主函数后进行搜索script
跟进后在这里打断点
开始单步调试
flag被解密出来





